use std::net::{Ipv4Addr,Ipv6Addr};
use std::ops::Sub;
use std::time::{Duration, UNIX_EPOCH};


use pcap::Device;
use pcap;
use pdu::*;
//use libc;

fn main() {
    // 这个用来记录flow已经它被捕获的时间
    //let mut map = std::collections::HashMap::new();
// Usage 2: Capture from an element of device list.
 pcap::Device::list().iter().for_each(|device|println!("device:{:#?}",device));
    
    //let mut cap = Device::lookup().unwrap().unwrap().open().unwrap();

let mut cap = pcap::Capture::from_device("\\Device\\NPF_{5E990B86-65A9-46AF-9D58-ED68FEAA51FF}")
        .unwrap()
        .immediate_mode(true)
        .open()
        .unwrap();

    // 你可以设置filter，这里我们简化不进行设置了
    // cap.filter("host 127.0.0.1", true).unwrap();

    while let Ok(packet) = cap.next_packet() {
        // 得到捕获的包信息
println!("{:?}",packet);
        //......
    }
}
